/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.uca.dss.curso2011.grupo1.interfazExtendido;


import org.uca.dss.curso2011.grupo1.interfazExtendido.InterfazCompras;
import org.uca.dss.curso2011.grupo1.interfazExtendido.InterfazListados;
import org.uca.dss.curso2011.grupo1.interfazExtendido.CriterioAsientos;
import org.uca.dss.curso2011.grupo1.interfazExtendido.CriterioAsientosDiferentes;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import org.junit.After;
import org.junit.Before;
import org.uca.dss.curso2011.grupo1.basededatos.DBUtils;
import org.uca.dss.curso2011.grupo1.clases.RepartoAsientos;
import org.uca.dss.curso2011.grupo1.clases.RepartoAsientosIncremental;
import org.uca.dss.curso2011.grupo1.reservas.GestionReservasExtendidas;


/**
 *
 * @author dmolina
 */
public abstract class InterfazTestExtendido {
    /** Referencia a la clase Listados */
    protected InterfazListados listado;
    /** Referencia a la clase compras */
    protected InterfazCompras compras;
    protected LocalDate hoy;
    protected String origen;
    protected String destino;

    public InterfazTestExtendido() {
        origen = "cádiz";
        destino = "jerez";
        hoy = new LocalDate();
    }

    public List<LocalTime> getHorasPosibles() {
        List<LocalTime> horasComprobar = new LinkedList<LocalTime>();
        horasComprobar.add(new LocalTime("17:00"));
        horasComprobar.add(new LocalTime("19:00"));
        horasComprobar.add(new LocalTime("9:00"));
        horasComprobar.add(new LocalTime("13:00"));
        horasComprobar.add(new LocalTime("9:15"));

        return horasComprobar;
    }

    public LocalTime getHoraAleatoria(List<LocalTime> horas) {
        int pos = new Random().nextInt(horas.size());
        return horas.get(pos);
    }

    protected GestionReservasExtendidas gestion;

    @Before
    public void setUp() {
        DBUtils.initDataBase("reservastests.dat");
        RepartoAsientos repartoAsientos = new RepartoAsientosIncremental();
        CriterioAsientos criterioAsientos = new CriterioAsientosDiferentes();
        gestion = new GestionReservasExtendidas("trenest1.csv",3 , "trayectost1.csv",6,repartoAsientos,criterioAsientos);
        listado = gestion.obtieneListados();
        compras = gestion.obtieneCompras();
    }

    @After
    public void tearDown() {
        DBUtils.clear();
        gestion = null;
    }

}
